import type { CommonNodeType, ModelConfig, ValueSelector } from '@/components/workflow/types'

export enum PromptRole {
  system = 'system',
  user = 'user',
  assistant = 'assistant'
}

export enum EditionType {
  basic = 'basic',
  jinja2 = 'jinja2'
}

export type PromptItem = {
  id?: string
  role?: PromptRole
  text: string
  edition_type?: EditionType
  jinja2_text?: string
}

export type RolePrefix = {
  user: string
  assistant: string
}

export type Memory = {
  role_prefix?: RolePrefix
  window: {
    enabled: boolean
    size: number | string | null
  }
  query_prompt_template: string
}

export enum Resolution {
  low = 'low',
  high = 'high'
}
export type VisionSetting = {
  variable_selector: ValueSelector
  detail: Resolution
}
export type LLMNodeType = CommonNodeType & {
  model: ModelConfig
  inputList: any[]
  callWord: string
  outputList: any[]
}
